package com.demo.mapper;

import com.demo.bean.Lesson;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 李天航
 * 操作课程表
 */
@Repository
public interface LessonMapper {
    /**
     * 获取当前用户的课程表
     * @param userAccount 用户账号
     * @return 课程表
     */
    List<Lesson> getLessonsByUserAccount(String userAccount);

    /**
     * 添加一个课程
     * @param lesson 课程信息
     */
    void addLesson(Lesson lesson);

    /**
     * 删除一个课程
     * @param lessonId 课程编号
     */
    void deleteLesson(Integer lessonId);

    /**
     * 清空某个用户的课程表
     * @param userAccount 用户账号
     */
    void clearLessons(String userAccount);

    /**
     * 更新课程表
     * @param lesson 更新后的课程信息
     */
    void updateLesson(Lesson lesson);

    /**
     * 根据id获取课程信息
     * @param lessonId 课程id
     * @return 课程信息
     */
    Lesson getLessonById(Integer lessonId);

    /**
     * 获取每周活动的数量
     * @param userAccount 用户账号
     * @return 活动数量
     */
    int getLessonCount(String userAccount);

    /**
     * 第一个起始时间大于time的每周活动
     * @param lesson lessonId,beginTime
     * @return 每周活动的起始时间和终止时间
     */
    Lesson firstLargerBeginTime(Lesson lesson);

    /**
     * 第一个终止时间大于time的每周活动
     * @param lesson lessonId,beginTime
     * @return 每周活动
     */
    Lesson firstLargerEndTime(Lesson lesson);

    /**
     * 删除错误的数据
     */
    void deleteWrongData();

    /**
     * 批量插入
     * @param lessons 课程
     */
    void addLessons(List<Lesson> lessons);
}
